今天會介紹到一個滿重要的功能,就是函式庫,在『Day5 函式(數)介紹』中就有稍微提到函式的部分,其實有些函式在Arduino或Esp32中必沒有預設就在,可能特別需要去導入,而這個導入就是include,所以大家應該就了解第一行include的功能了。
匯入函數庫可能大家都會覺得我是要講剛剛講的include,可是不是,我要講的是Arduino內建有小部分的函式庫,像是AP跟STA模式界都需要用到WiFi這個函式庫,但各位應該以為只有開發板有函式庫,沒想過有些感測器或是一些服務也會需要安裝函式庫吧,所以今天要交各為如何去找函式庫,那其實有兩種。
第一種函式庫有些沒有,但會定期更新
第二種函式庫較多,但要自己去看有沒有更新
首先先打開Arduino IDE -> 草稿碼 -> 匯入程式庫 -> 管理程式庫
圖片取自:使用者拍攝
打開後會像當初找開發板那樣,去找自己所需要的函式庫
圖片取自:使用者拍攝
這邊就都不多先這樣介紹了,因為後續才會用到,所以這邊就稍微淺談一下,那接下來介紹第二個囉
先到網路上找到要用的函式庫,在GitHub上有許多人會放函式庫,如何搜尋呢,可以在網頁上打arduino libraryname(函數庫名稱) github,通常這樣就可以找到拉,下面為舉例。
點擊Code -> Download ZIP下載zip檔
圖片取自:網路
後續一樣打開Arduino IDE -> 草稿碼 -> 匯入程式庫 -> 加入ZIP程式庫...,後續找到下載下來檔案就可以囉
圖片取自:使用者拍攝
那這邊就都稍微介紹,也會有應用,那時後會在介紹詳細一點,那就開始介紹程式碼拉~
void setup(){
Serial.begin(115200);
// Initialize the output variables as outputs
pinMode(output22, OUTPUT);
pinMode(output23, OUTPUT);
// Set outputs to LOW
digitalWrite(output22, LOW);
digitalWrite(output23, LOW);
// Connect to Wi-Fi network with SSID and password
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
前幾段在前幾個篇章都有講解到,設定鮑率,定義腳位,數位輸出狀態,那後續比較關鍵的就是37~41、46及47行,那35、36行只是輸出文字給使用者觀看而已,那接下來開始講解。
WiFi.begin(ssid, password);
透過ssid及password,對該基地台做連結,如沒連結到會持續連接
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
查看連結況狀,如為連結到進入迴圈,並且在監控視窗中輸出"."
Serial.println(WiFi.localIP());
等到WiFi成功連到後,會跑到這行,當執行到這行時Esp32s會去抓自己的IP位址在哪裡,並且輸出在監控視窗中
server.begin();
Esp32s開啟網頁服務
接下來就是看下面AP mode的程式碼啦
void setup() {
Serial.begin(115200);
// Initialize the output variables as outputs
pinMode(output0, OUTPUT);
pinMode(output2, OUTPUT);
// Set outputs to LOW
digitalWrite(output0, LOW);
digitalWrite(output2, LOW);
// Connect to Wi-Fi network with SSID and password
Serial.print("Setting AP (Access Point)…");
// Remove the password parameter, if you want the AP (Access Point) to be open
WiFi.softAP(ssidAP, passwordAP);
delay(500);
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
server.begin();
}
你們會發現前幾行又是跟STA mode相同,都是設置鮑率、定義腳位及設定腳位狀態的部分,那我們就跳到第33行。
WiFi.softAP(ssidAP, passwordAP);
WiFi建立連結,可使使用者連結到Esp32s,但這邊只做通道的部分,需要注意的是,當passwordAP沒設置時,密碼不用輸入就可連結
IPAddress IP = WiFi.softAPIP();
softAPIP會將得到softAP的IP位址,就是192.168.4.1這IP,最後由Serial.println把IP顯示在監控視窗中,其實這邊可以省略直接Serial.println(WiFi.softAPIP());直接把IP位址顯示出來
好了,今天這篇不知道大家有沒有對STA跟AP mode的差別更加了解,如果沒有後面幾篇也會看到很多次,那下一篇會是講解Esp32s用AP mode結合Relay(繼電器),並控制Relay的開啟與關閉,然後也不用很擔心函式庫匯入不會,因為後續有幾篇會講解到,今天只是稍微提起,那今天就這樣囉~明天實作見。